home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 005 / supermkt.arc / SHOP.BAS next >
Encoding:
BASIC Source File  |  1986-07-07  |  31.0 KB  |  312 lines

  1. 10 CLEAR:KEY OFF:OPTION BASE 1:DIM DA$(20),DB$(20),DC(20),DD$(20),DE(20),DF(20),DG$(20),OA(20),TA$(20),DH(20),DI(20),ROW$(20):SA$=STRING$(50," "):SB$=STRING$(59," "):SC$=STRING$(70," "):SD$=STRING$(65," "):SE$=STRING$(79," "):ON ERROR GOTO 2250
  2. 20 CLS:LOCATE 12,25:COLOR 11:PRINT"SPECIFY DRIVE FOR WORK FILES: ";
  3. 30 DRV$=INKEY$:IF DRV$=""THEN 30 ELSE DRV$=DRV$+":":PRINT DRV$
  4. 40 FOR I=1 TO 250:NEXT
  5. 50 COLOR 0:FILES DRV$+"items":COLOR 7
  6. 60 OPEN DRV$+"cat" FOR INPUT AS #1:FOR I=1 TO 20:IF EOF(1)THEN CLOSE:GOTO 80
  7. 70 INPUT#1,CAT$,REC:DA$(I)=CAT$:DC(I)=REC:NEXT:INPUT#1,LA$:CLOSE
  8. 80 CLS:LOCATE 1,32:COLOR 13:PRINT"SHOPPING PROGRAM":LOCATE 3,32:COLOR 13:PRINT"    MAIN MENU   ":LOCATE 4,32:COLOR 11:PRINT"    _________   ":LOCATE 7,25:COLOR 11:PRINT"< 1 >   ";:COLOR 12:PRINT"SHOPPING UPDATE
  9. 90 LOCATE 9,25:COLOR 11:PRINT"< 2 >   ";:COLOR 12:PRINT"DISPLAY/PRINT SHOPPING LIST":LOCATE 11,25:COLOR 11:PRINT"< 3 >   ";:COLOR 12:PRINT"DISPLAY/PRINT ITEM FILE":LOCATE 13,25:COLOR 11:PRINT"< 4 >   ";:COLOR 12:PRINT"STATISTICS
  10. 100 LOCATE 15,25:COLOR 11:PRINT"< 5 >   ";:COLOR 12:PRINT"FILE MAINTENANCE":LOCATE 17,25:COLOR 11:PRINT"< 6 >   ";:COLOR 12:PRINT"EXIT PROGRAM
  11. 110 LOCATE 20,18,1:COLOR 11:PRINT"Enter Selection: ";
  12. 120 Q$=INKEY$:IF Q$=""THEN 120 ELSE IF Q$="1"THEN 330 ELSE 130
  13. 130 IF Q$="2"THEN 250 ELSE IF Q$="3"THEN 290 ELSE IF Q$="4"THEN 2720 ELSE IF Q$="5"THEN 1160 ELSE IF Q$="6"THEN CLOSE:GOTO 2900 ELSE LOCATE 20,35:BEEP:PRINT" ":GOTO 110
  14. 140 CLS:LOCATE 1,32:COLOR 13:PRINT"SHOPPING PROGRAM":LOCATE 3,30:COLOR 13:PRINT"UPDATE SHOPPING LIST":LOCATE 4,30:COLOR 11:PRINT"____________________":GOSUB 2080:LOCATE 23,20:COLOR 11:INPUT;"Enter Category Number";CA$:IF CA$=""THEN 80
  15. 150 CLS:LOCATE 1,30:COLOR 13:PRINT"UPDATE SHOPPING LIST":CA=VAL(CA$):RB=DC(CA):IF DA$(CA)<>"X"THEN 170 ELSE LOCATE 6,5,0:COLOR 11:BEEP:PRINT"CATEGORY NOT NAMED":LOCATE 23,30,1:PRINT"Press <ENTER> to Quit: ";
  16. 160 Q$=INKEY$:IF Q$=""THEN 160 ELSE 140
  17. 170 NA=0:GOSUB 2160:IF NA=0 THEN 190 ELSE GOSUB 2500:BEEP:PRINT"NO ITEMS TO CHANGE - PRESS ENTER: ";
  18. 180 Q$=INKEY$:IF Q$=""THEN 180 ELSE 140
  19. 190 CLS:COLOR 11:LOCATE 1,10:PRINT"ITEM NAME          DESCRIPTION        ALLOTTED     IN STOCK":LOCATE 23,33,0:COLOR 11:PRINT"ENTER 'q' TO QUIT";:R=2:FOR I=1 TO 20:IF DB$(I)=""THEN EA=I:GOTO 210
  20. 200 LOCATE R,10:COLOR 12:PRINT DB$(I);SPACE$(4);DD$(I);SPACE$(6);DE(I);SPACE$(11);DF(I):R=R+1:NEXT
  21. 210 R=2:RC=RB:FOR I=1 TO 20:IF DB$(I)=""THEN EA=I:GOTO 140
  22. 220 LOCATE R,65,1:COLOR 11
  23. 230 Q$=INKEY$:IF Q$=""THEN 230 ELSE IF Q$=CHR$(13)THEN Q=DF(I) ELSE IF Q$="q"OR Q$="Q"THEN 140 ELSE Q=VAL(Q$)
  24. 240 LOCATE R,64,0:PRINT Q   :NB=Q:GOSUB 2070:RC=RC+1:R=R+1:NEXT:GOTO 140
  25. 250 CLS:LOCATE 1,32:COLOR 13:PRINT"SHOPPING PROGRAM":LOCATE 3,27:COLOR 13:PRINT"DISPLAY/PRINT SHOPPING LIST":LOCATE 4,27:COLOR 11:PRINT"___________________________":LOCATE 11,25:COLOR 11:PRINT"< 1 >   ";:COLOR 12:PRINT"DISPLAY SHOPPING LIST
  26. 260 LOCATE 13,25:COLOR 11:PRINT"< 2 >   ";:COLOR 12:PRINT"PRINT SHOPPING LIST":LOCATE 23,20,1:COLOR 11:PRINT"Enter Selection or 'q' to Quit:  1";:LOCATE 23,53
  27. 270 Q$=INKEY$:IF Q$=""THEN 270 ELSE IF Q$="q"OR Q$="Q"THEN 80
  28. 280 PRINT Q$:IF Q$=CHR$(13)OR Q$="1"THEN 370 ELSE 680
  29. 290 CLS:LOCATE 1,32:COLOR 13:PRINT"SHOPPING PROGRAM":LOCATE 3,28:COLOR 13:PRINT"DISPLAY/PRINT ITEM FILE ":LOCATE 4,28:COLOR 11:PRINT"_______________________ ":LOCATE 9,25:COLOR 11:PRINT"< 1 >   ";:COLOR 12:PRINT"DISPLAY ITEM FILE
  30. 300 LOCATE 11,25:COLOR 11:PRINT"< 2 >   ";:COLOR 12:PRINT"PRINT ITEM FILE":LOCATE 23,20,1:COLOR 11:PRINT"Enter Selection or 'q' to Quit:  1";:LOCATE 23,53
  31. 310 Q$=INKEY$:IF Q$=""THEN 310 ELSE IF Q$="q"OR Q$="Q"THEN 80
  32. 320 PRINT Q$:IF Q$="1"OR Q$=CHR$(13)THEN 530 ELSE 940
  33. 330 CLS:LOCATE 1,32:COLOR 13:PRINT"SHOPPING PROGRAM":LOCATE 3,32,0:COLOR 13:PRINT"SHOPPING UPDATE":LOCATE 4,32:COLOR 11:PRINT"_______________":LOCATE 11,25:COLOR 11:PRINT"< 1 >   ";:COLOR 12:PRINT"UPDATE SHOPPING LIST
  34. 340 LOCATE 13,25:COLOR 11:PRINT"< 2 >   ";:COLOR 12:PRINT"UPDATE PURCHASES":LOCATE 23,20,1:COLOR 11:PRINT"Enter Selection or 'q' to Quit:  1";:LOCATE 23,53
  35. 350 Q$=INKEY$:IF Q$=""THEN 350 ELSE IF Q$="q"OR Q$="Q"THEN 80
  36. 360 PRINT Q$:IF Q$=CHR$(13)OR Q$="1"THEN 140 ELSE 1480
  37. 370 GOSUB 380:GOTO 400
  38. 380 CLS:LOCATE 1,30,0:COLOR 13:PRINT"DISPLAY SHOPPING LIST":LOCATE 3,10:COLOR 13:PRINT"  ITEM             DESCRIPTION       AMOUNT     PRICE     TOTAL":LOCATE 4,10:COLOR 11:PRINT"---------------   ---------------    ------     -----     -----";
  39. 390 R=5:RETURN
  40. 400 GOSUB 2670:B=1:NC=0
  41. 410 FOR I=DC(B)TO DC(B)+19:GET#1,I:IF LEFT$(NME$,1)<>" "THEN 430 ELSE B=B+1:NC=0
  42. 420 IF B=21 THEN 510 ELSE IF DC(B)=0 THEN 500 ELSE NC=0:R=R+1:GOTO 410
  43. 430 SF=CVI(AA$):IA=CVI(IA$):IF SF<=IA THEN 500
  44. 440 BUY=SF-IA:PA=VAL(PA$):EB=BUY*PA:IF NC THEN 460
  45. 450 IF R=>19 THEN ND=1:LOCATE 23,17,1:COLOR 11:BEEP:PRINT"PRESS ENTER FOR NEXT SCREEN OR 'q' TO QUIT: ";:GOTO 470 ELSE LOCATE R,5:COLOR 13:PRINT DA$(B):R=R+2:ND=1:NC=1
  46. 460 IF R<21 THEN 490 ELSE LOCATE 23,17,1:COLOR 11:BEEP:PRINT"PRESS ENTER FOR NEXT SCREEN OR 'q' TO QUIT: ";
  47. 470 Q$=INKEY$:IF Q$=""THEN 470 ELSE IF Q$="q"OR Q$="Q"THEN CLOSE:GOTO 80
  48. 480 GOSUB 380:IF ND AND LEFT$(NME$,1)<>" "THEN R=R+1:LOCATE R,5:COLOR 13:PRINT DA$(B):ND=0:R=R+2
  49. 490 LOCATE R,10,0:COLOR 12:PRINT NME$;SPACE$(4);DJ$;SPACE$(4);BUY;:LOCATE R,51:PRINT USING "$$##.##";PA;:LOCATE R,66:PRINT USING "$$##.##";EB:R=R+1
  50. 500 NEXT I
  51. 510 CLOSE:COLOR 13:LOCATE 23,20,1:BEEP:PRINT"END OF LIST - PRESS ENTER FOR MAIN MENU: ";
  52. 520 Q$=INKEY$:IF Q$=""THEN 520 ELSE 80
  53. 530 GOSUB 540:GOTO 550
  54. 540 CLS:LOCATE 1,32:COLOR 13:PRINT"DISPLAY ITEM FILE":LOCATE 3,5:PRINT"  ITEM             DESCRIPTION       ALLOCATED     IN STOCK   PRICE":LOCATE 4,5:COLOR 11:PRINT"---------------   ---------------    ---------     --------   -----";:R=5:RETURN
  55. 550 GOSUB 2670:B=1:NC=0:ND=1
  56. 560 FOR I=DC(B)TO DC(B)+19:GET#1,I:J=ASC(MID$(NME$,1,1)):IF J=32 OR J=0 THEN B=B+1:NC=0:GOTO 570 ELSE 580
  57. 570 IF B=21 THEN 660 ELSE 560
  58. 580 SF=CVI(AA$):IA=CVI(IA$):PA=VAL(PA$):IF NC THEN 620
  59. 590 IF R=>19 THEN ND=1:LOCATE 23,17,1:COLOR 11:BEEP:PRINT"PRESS ENTER FOR NEXT SCREEN OR 'q' TO QUIT: ";:GOTO 630
  60. 600 IF ND THEN 610 ELSE R=R+1
  61. 610 LOCATE R,1:COLOR 13:PRINT DA$(B):R=R+2:ND=1:NC=1:GOTO 650
  62. 620 IF R<21 THEN 650 ELSE LOCATE 23,17,1:COLOR 11:BEEP:PRINT"PRESS ENTER FOR NEXT SCREEN  OR 'q' TO QUIT: ";
  63. 630 Q$=INKEY$:IF Q$=""THEN 630 ELSE IF Q$="q"OR Q$="Q"THEN CLOSE:GOTO 80
  64. 640 GOSUB 540:J=ASC(MID$(NME$,1,1)):IF J=32 AND ND OR J=0 AND ND THEN LOCATE R,1:COLOR 13:PRINT DA$(B):ND=0:R=R+2
  65. 650 LOCATE R,5,0:COLOR 12:PRINT NME$;SPACE$(4);DJ$;SPACE$(6);SF;SPACE$(10);IA;:LOCATE R,65:PRINT USING "$$##.##";PA:R=R+1:NEXT I
  66. 660 CLOSE:COLOR 13:LOCATE 23,20,1:BEEP:PRINT"END OF LIST - PRESS ENTER FOR MAIN MENU: ";
  67. 670 Q$=INKEY$:IF Q$=""THEN 670 ELSE 80
  68. 680 SG$="":OB=0:A=0:CLS:LOCATE 1,32,0:COLOR 13:PRINT"SHOPPING PROGRAM":LOCATE 4,31:COLOR 11:PRINT"___________________":LOCATE 3,31,0:COLOR 13:PRINT"PRINT SHOPPING LIST":LOCATE 14,25,1:COLOR 11:PRINT"Re - order Categories? (y/n/q): n";:LOCATE 14,57
  69. 690 Q$=INKEY$:IF Q$=""THEN 690 ELSE IF Q$=CHR$(13)THEN PRINT"N":GOTO 700 ELSE IF Q$="q"OR Q$="Q"THEN 80 ELSE GOSUB 2510:GOTO 720
  70. 700 FOR I=1 TO 20:OA(I)=DC(I):TA$(I)=DA$(I):NEXT:LOCATE 14,25,0:COLOR 12:PRINT"TURN ON PRINTER AND ALIGN PAPER        ":LOCATE 16,25:PRINT"     PRESS ENTER WHEN READY    "
  71. 710 Q$=INKEY$:IF Q$=""THEN 710
  72. 720 CLS:BEEP:LOCATE 3,32,0:COLOR 13:PRINT"SHOPPING PROGRAM":LOCATE 14,23:COLOR 11:PRINT"<< SHOPPING LIST BEING PRINTED >>":WIDTH"LPT1:",80:GOSUB 730:GOTO 750
  73. 730 LNO=5:LPRINT TAB(32);:LPRINT"SHOPPING LIST":LPRINT TAB(32);:LPRINT"-------------":IF SG$=""THEN 740 ELSE A$=SG$:GOSUB 2680:LPRINT:LPRINT:LPRINT TAB(32);:LPRINT"STORE:   ";A$
  74. 740 LPRINT:LPRINT:LPRINT"  CATEGORY            ITEM           DESCRIPTION     AMOUNT   PRICE   TOTAL":LPRINT"---------------  ---------------   ---------------   ------   -----   -----";:RETURN
  75. 750 GOSUB 2670:GOSUB 1130:B=1:TB=0
  76. 760 FOR I=OA(B)TO OA(B)+19:GET#1,I:IF LEFT$(TA$(B),12)="OTHER STORES"THEN BB=B:GOTO 860
  77. 770 J=ASC(MID$(NME$,1,1)):IF J=0 OR J=32 THEN B=B+1:IF OA(B)=0 THEN 850 ELSE FA=0:R=R+1:GOTO 760
  78. 780 SF=CVI(AA$):IA=CVI(IA$):IF SF<=IA THEN 840
  79. 790 BUY=SF-IA:TOT=1:A=A+1:GOSUB 1150:PA=VAL(PA$):EB=BUY*PA:IF FA THEN 820
  80. 800 IF LNO=>68 THEN LPRINT CHR$(12):GOSUB 730
  81. 810 LPRINT:LPRINT:LPRINT TA$(B);:LPRINT TAB(18);:FA=1:LNO=LNO+5:GOTO 830
  82. 820 LPRINT TAB(18);
  83. 830 LPRINT NME$;:LPRINT TAB(36);:LPRINT DJ$;:LPRINT TAB(55);:LPRINT BUY;:LPRINT TAB(61);:LPRINT USING "$$##.##";PA;:LPRINT TAB(69);:LPRINT USING "$$##.##";EB:TB=TB+EB:LNO=LNO+1:GOTO 840
  84. 840 NEXT I
  85. 850 CLOSE
  86. 860 IF LNO=>68 THEN LPRINT CHR$(12):GOSUB 730
  87. 870 LPRINT:LPRINT:LPRINT TAB(50);:LPRINT "*** TOTAL ***";:LPRINT TAB(68);:LPRINT USING"$$###.##";TB:LPRINT CHR$(12):LNO=5:FB=1:FOR I=OA(BB)TO OA(BB)+19:GET#1,I
  88. 880 J=ASC(MID$(NME$,1,1)):IF J=0 OR J=32 THEN CLOSE:LPRINT CHR$(12):LPRINT CHR$(12):BEEP:GOTO 80
  89. 890 SF=CVI(AA$):IA=CVI(IA$):IF SF<=IA THEN 930 ELSE IF FB THEN GOSUB 740:FB=0
  90. 900 BUY=SF-IA:A=A+1:GOSUB 1150:PA=VAL(PA$):EB=BUY*PA:IF I<>1 THEN LPRINT:GOTO 920
  91. 910 LPRINT:LPRINT TA$(BB);:LPRINT TAB(18);:LNO=LNO+5
  92. 920 LPRINT TAB(18);:LPRINT NME$;:LPRINT TAB(36);:LPRINT DJ$;:LPRINT TAB(55);:LPRINT BUY;:LPRINT TAB(61);:LPRINT USING "$$##.##";PA;:LPRINT TAB(69);:LPRINT USING "$$##.##";EB:LNO=LNO+1:IF LNO=>68 THEN LPRINT CHR$(12):GOSUB 730
  93. 930 NEXT I:CLOSE:LPRINT CHR$(12):BEEP:GOTO 80
  94. 940 CLS:LOCATE 1,32:COLOR 13:PRINT"SHOPPING PROGRAM":LOCATE 3,32,0:COLOR 13:PRINT"PRINT ITEM FILE":LOCATE 4,32:COLOR 11:PRINT"_______________":LOCATE 14,25,0:COLOR 12:PRINT"TURN ON PRINTER AND ALIGN PAPER        "
  95. 950 LOCATE 17,25:PRINT"     PRESS ENTER WHEN READY    "
  96. 960 Q$=INKEY$:IF Q$=""THEN 960
  97. 970 CLS:BEEP:LOCATE 3,32,0:COLOR 13:PRINT"SHOPPING PROGRAM":LOCATE 14,25:COLOR 11:PRINT"<< ITEM FILE BEING PRINTED >>":WIDTH"LPT1:",80:GOSUB 980:GOTO 1000
  98. 980 LNO=5:LPRINT TAB(32);:LPRINT"   ITEM FILE ":LPRINT TAB(32);:LPRINT"-------------":LPRINT:LPRINT:LPRINT"  CATEGORY            ITEM           DESCRIPTION     ALLOTED   IN STOCK   PRICE
  99. 990 LPRINT"---------------  ---------------   ---------------   -------   --------   -----";:LPRINT:RETURN
  100. 1000 GOSUB 2670:L=21:N=40:M=1:TB=0
  101. 1010 FOR I=L TO N:GET#1,I:IF L=401 THEN 1070 ELSE J=ASC(MID$(NME$,1,1)):IF J=0 OR J=32 THEN L=L+20:N=N+20:FA=0:R=R+1:M=M+1:GOTO 1010
  102. 1020 SF=CVI(AA$):IA=CVI(IA$):PA=VAL(PA$):IF FA THEN 1050
  103. 1030 IF LNO=>68 THEN LPRINT CHR$(12):GOSUB 980
  104. 1040 LPRINT:LPRINT DA$(M);:LPRINT TAB(18);:FA=1:LNO=LNO+5:IF LNO=>68 THEN LPRINT CHR$(12):GOSUB 980:GOTO 1060
  105. 1050 LPRINT TAB(18);
  106. 1060 LPRINT NME$;:LPRINT TAB(36);:LPRINT DJ$;:LPRINT TAB(56);:LPRINT SF;:LPRINT TAB(66);:LPRINT IA;:LPRINT TAB(73);:LPRINT USING "$$##.##";PA:LNO=LNO+1:NEXT I
  107. 1070 FOR I=1 TO 20:GET#1,I:J=ASC(MID$(NME$,1,1)):IF J=0 OR J=32 THEN CLOSE:LPRINT CHR$(12):BEEP:GOTO 80
  108. 1080 SF=CVI(AA$):IA=CVI(IA$):PA=VAL(PA$):IF FA THEN 1110
  109. 1090 IF LNO=>68 THEN LPRINT CHR$(12):GOSUB 980
  110. 1100 LPRINT:LPRINT:LPRINT DA$(20);:LPRINT TAB(18);:FA=1:LNO=LNO+5:GOTO 1120
  111. 1110 LPRINT TAB(18);
  112. 1120 LPRINT NME$;:LPRINT TAB(36);:LPRINT DJ$;:LPRINT TAB(56);:LPRINT SF;:LPRINT TAB(66);:LPRINT IA;:LPRINT TAB(73);:LPRINT USING "$$##.##";PA:LNO=LNO+1:NEXT I:CLOSE:LPRINT CHR$(12):BEEP:GOTO 80
  113. 1130 KILL DRV$+"temp
  114. 1140 OPEN DRV$+"temp" AS #3 LEN=36:FIELD #3,15 AS TC$,15 AS TD$,2 AS TE$,2 AS TF$,2 AS TG$:RETURN
  115. 1150 LSET TC$=NME$:LSET TD$=DJ$:RSET TE$=AA$:RSET TF$=IA$:RSET TG$=MKI$(I):PUT#3,A:RETURN
  116. 1160 CLS:LOCATE 1,32:COLOR 13:PRINT"SHOPPING PROGRAM":LOCATE 3,32:COLOR 13:PRINT"FILE MAINTENANCE":LOCATE 4,32:COLOR 11:PRINT"________________":LOCATE 7,25:COLOR 11:PRINT"< 1 >    ";:COLOR 12:PRINT"ADD A CATEGORY
  117. 1170 LOCATE 9,25:COLOR 11:PRINT"< 2 >    ";:COLOR 12:PRINT"ADD AN ITEM":LOCATE 11,25:COLOR 11:PRINT"< 3 >    ";:COLOR 12:PRINT"CHANGE/DELETE A CATEGORY":LOCATE 13,25:COLOR 11:PRINT"< 4 >    ";:COLOR 12:PRINT"CHANGE/DELETE AN ITEM
  118. 1180 LOCATE 15,25:COLOR 11:PRINT"< 5 >    ";:COLOR 12:PRINT"DISPLAY AN ITEM":LOCATE 17,25:COLOR 11:PRINT"< 6 >    ";:COLOR 12:PRINT"MAIN MENU
  119. 1190 LOCATE 20,18,1:COLOR 11:PRINT"Enter Selection: ";
  120. 1200 Q$=INKEY$:IF Q$=""THEN 1200 ELSE IF Q$="1"THEN 1210 ELSE IF Q$="2"THEN 1280 ELSE IF Q$="3"THEN 1600 ELSE IF Q$="4"THEN 1680 ELSE IF Q$="5"THEN 1910 ELSE IF Q$="6"OR Q$=CHR$(13)THEN 80 ELSE LOCATE 20,35:BEEP:PRINT" ":GOTO 1190
  121. 1210 OC=0:CLS:LOCATE 1,32:COLOR 13:PRINT"FILE MAINTENANCE":LOCATE 3,32:COLOR 13:PRINT" ADD A CATEGORY ":LOCATE 4,32:COLOR 11:PRINT" ______________ ":GOSUB 2080
  122. 1220 IF DA$(20)<>""THEN 1240 ELSE LOCATE 23,24:BEEP:COLOR 13:PRINT"NO MORE SPACE - PRESS ENTER: ";
  123. 1230 Q$=INKEY$:IF Q$=""THEN 1230 ELSE 80
  124. 1240 LOCATE 23,20:COLOR 11:INPUT;"Enter Category Name: ";CAT$:IF CAT$=""THEN 1160 ELSE IF LEN(CAT$)>15 THEN LOCATE 23,41,0:PRINT SPACE$(30);:BEEP:GOTO 1240 ELSE A$=CAT$:GOSUB 2680:CAT$=A$
  125. 1250 GOSUB 2500:PRINT"Is Category Name OK? (y/n/q):  y";:LOCATE 23,51
  126. 1260 Q$=INKEY$:IF Q$=""THEN 1260 ELSE IF Q$="q"THEN 1160 ELSE IF Q$=CHR$(13)THEN 1270 ELSE PRINT"N":GOTO 1210
  127. 1270 DA$(NE)=CAT$:GOSUB 2050:GOTO 1210
  128. 1280 CLS:LOCATE 1,32:COLOR 13:PRINT"FILE MAINTENANCE":LOCATE 3,32:COLOR 13:PRINT"   ADD AN ITEM  ":LOCATE 4,32:COLOR 11:PRINT"   ___________  ":GOSUB 2080:LOCATE 23,20:COLOR 11:INPUT;"Enter Category Number";CA$:IF CA$=""THEN 1160
  129. 1290 CLS:LOCATE 1,32:COLOR 13:PRINT"FILE MAINTENANCE":LOCATE 3,32:COLOR 13:PRINT"   ADD AN ITEM  ":LOCATE 4,32:COLOR 11:PRINT"   ___________  "
  130. 1300 CA=VAL(CA$):RB=DC(CA):GOSUB 2160:R=7:FOR I=1 TO 10:IF DB$(I)=""THEN NE=RC:GOTO 1360
  131. 1310 LOCATE R,1:COLOR 11:PRINT I:LOCATE R,5:COLOR 12:PRINT DB$(I);DD$(I):R=R+1:NEXT:R=7:FOR I=11 TO 20:IF DB$(I)=""THEN NE=RC:GOTO 1360
  132. 1320 LOCATE R,45:COLOR 11:PRINT I:LOCATE R,49:COLOR 12:PRINT DB$(I);DD$(I):R=R+1:NEXT
  133. 1330 IF I=20 AND DB$(20)=""THEN 1330 ELSE LOCATE 22,18:BEEP:COLOR 11:PRINT"NO MORE ITEM SPACE AVAILABLE - PRESS ENTER: ";
  134. 1340 Q$=INKEY$:IF Q$=""THEN 1340 ELSE 1280
  135. 1350 LOCATE R,40:COLOR 11:PRINT I:LOCATE R,39:COLOR 12:PRINT DB$(I);DD$(I)
  136. 1360 LOCATE 5,5:COLOR 11:IF DA$(CA)="X"THEN PRINT"CATEGORY DOES NOT EXIST":GOTO 1370 ELSE PRINT"CATEGORY = ";DA$(CA):GOTO 1390
  137. 1370 LOCATE 23,30,1:COLOR 11:BEEP:PRINT"PRESS <ENTER> TO QUIT: ";
  138. 1380 Q$=INKEY$:IF Q$=""THEN 1380 ELSE 1280
  139. 1390 LOCATE 19,5:COLOR 13:PRINT"ITEM NAME          DESCRIPTION        ALLOTTED     IN STOCK     PRICE":LOCATE 20,5:COLOR 11:PRINT"---------          -----------        --------     --------     -----
  140. 1400 LOCATE 23,20,0:PRINT SA$:LOCATE 23,20,1:COLOR 11:INPUT"Enter Item Name or 'q' to Quit: ";NF$
  141. 1410 IF NF$=""THEN 1280 ELSE IF NF$="q"OR NF$="Q"THEN 1160 ELSE IF LEN(NF$)>15 THEN LOCATE 23,41,0:PRINT SPACE$(35);:BEEP:GOTO 1400 ELSE A$=NF$:GOSUB 2680:NF$=A$
  142. 1420 LOCATE 21,5:COLOR 12:PRINT NF$
  143. 1430 LOCATE 23,20,0:PRINT SA$:LOCATE 23,20,1:COLOR 11:INPUT"Enter Description: ";NG$:A$=NG$:IF LEN(A$)>15 THEN LOCATE 23,40,0:PRINT SPACE$(25);:BEEP:GOTO 1430 ELSE GOSUB 2680:NG$=A$:LOCATE 21,24,0:PRINT SPACE$(15);:LOCATE 21,24:COLOR 12:PRINT NG$
  144. 1440 LOCATE 23,20,0:PRINT SA$:LOCATE 23,20,1:COLOR 11:INPUT"Enter Allotment: ";NH:LOCATE 21,45:COLOR 12:PRINT NH:LOCATE 23,20,0:PRINT SA$:LOCATE 23,20,1:COLOR 11:INPUT"Enter In Stock: ";NB:LOCATE 21,58:COLOR 12:PRINT NB
  145. 1450 LOCATE 23,20,0:PRINT SA$:LOCATE 23,20,1:COLOR 11:INPUT"Enter Unit Price: ";NI$:LOCATE 21,69:COLOR 12:PRINT NI$:NI=VAL(NI$):LOCATE 23,20,0:PRINT SA$:LOCATE 23,20,1:COLOR 11:PRINT"Is Item Okay? (y/n):  y";:LOCATE 23,42
  146. 1460 Q$=INKEY$:IF Q$=""THEN 1460 ELSE IF Q$="n"OR Q$="N"THEN LOCATE 23,42,0:PRINT "N":LOCATE 21,1,0:PRINT SE$:LOCATE 23,20,0:PRINT SA$:GOTO 1400
  147. 1470 GOSUB 2230:GOSUB 2490:GOTO 1300
  148. 1480 GOSUB 2390:UA=0:CLS:LOCATE 2,30:COLOR 13:PRINT"UPDATE IN STOCK ITEMS":LOCATE 3,30:COLOR 11:PRINT"---------------------":LOCATE 8,5:COLOR 13:PRINT"     NAME            DESCRIPTION       ALLOTTED   IN STOCK  PURCHASED
  149. 1490 LOCATE 9,5:COLOR 11:PRINT"---------------    ---------------     -------   ---------  ---------":I=1:GOSUB 2670:OPEN DRV$+"temp" AS #3 LEN=36:FIELD #3,15 AS TC$,15 AS TD$,2 AS TE$,2 AS TF$,2 AS TG$
  150. 1500 GET#3,I:TTT=0:PB=0:TG=CVI(TG$):IF TG<=0 THEN LOCATE 11,15:PRINT SD$:GOTO 1570
  151. 1510 IF TG>=401 AND TG<=420 THEN GOSUB 1590:GOTO 1560
  152. 1520 COLOR 13:LOCATE 11,5:PRINT TC$;:LOCATE 11,24:PRINT TD$;:LOCATE 11,47:PRINT CVI(TE$);:LOCATE 11,57:TF=CVI(TF$):PRINT TF:COLOR 11:LOCATE 11,69,1
  153. 1530 Q$=INKEY$:IF Q$=""THEN 1530 ELSE IF Q$=CHR$(13)THEN TH=0:TI=0:GOTO 1550
  154. 1540 PRINT Q$:UA=1:AB$=Q$:AB=VAL(AB$):TF=TF+AB
  155. 1550 GET#1,TG:TOT=CVI(TOT$):TTT=TOT+1:RSET TOT$=MKI$(TTT):PC=CVI(PC$):PB=PC+AB:RSET PC$=MKI$(PB):RSET IA$=MKI$(TF):PUT#1,TG
  156. 1560 I=I+1:LOCATE 11,5,0:PRINT SC$:GOTO 1500
  157. 1570 CLOSE:KILL DRV$+"temp":LOCATE 23,15,1:BEEP:COLOR 11:PRINT"END OF LIST - PRESS ENTER TO RETURN TO MAIN MENU: ";
  158. 1580 Q$=INKEY$:IF Q$=""THEN 1580 ELSE 80
  159. 1590 LSET NME$="               ":LSET DJ$="               ":RSET AA$="  ":RSET IA$="  ":RSET PA$="     ":PUT#1,TG:RETURN
  160. 1600 CLS:LOCATE 1,32:COLOR 13:PRINT"FILE MAINTENANCE":LOCATE 3,28:COLOR 13:PRINT"CHANGE/DELETE A CATEGORY":LOCATE 4,28:COLOR 11:PRINT"________________________":GOSUB 2080
  161. 1610 LOCATE 23,20,1:COLOR 11:INPUT;"Enter Category Number: ";I$:IF I$=""THEN 1160
  162. 1620 IF VAL(I$)=20 THEN 1630 ELSE IF VAL(I$)>=NE THEN BEEP:LOCATE 23,45:PRINT "  ":GOTO 1610
  163. 1630 LOCATE 23,10:INPUT;"Enter New Name or 'd' to Delete or 'q' to Quit: ";A$:IF A$=""THEN 1160 ELSE IF A$="d"OR A$="D"THEN 3060
  164. 1640 IF A$="q"OR A$="Q"THEN 1160 ELSE IF LEN(A$)>15 THEN LOCATE 23,59,0:PRINT SPACE$(20);:BEEP:GOTO 1630 ELSE GOSUB 2680
  165. 1650 LOCATE 23,10,0:PRINT SPC(15):GOSUB 2500:PRINT"Is New Name OK? (y/n/q):  y      ";:LOCATE 23,46
  166. 1660 Q$=INKEY$:IF Q$=""THEN 1660 ELSE IF Q$="q"OR Q$="Q"THEN 1600 ELSE IF Q$="n"OR Q$="N"THEN PRINT"N":GOTO 1600 ELSE 1670
  167. 1670 I=VAL(I$):DA$(I)=A$:KILL DRV$+"cat":GOSUB 2140:GOTO 1600
  168. 1680 CLS:LOCATE 1,32:COLOR 13:PRINT"FILE MAINTENANCE":LOCATE 3,30:COLOR 13:PRINT"CHANGE/DELETE AN ITEM":LOCATE 4,30:COLOR 11:PRINT"_____________________":GOSUB 2080:NA=0:LOCATE 23,20:COLOR 11:INPUT;"Enter Category Number";CA$:IF CA$=""THEN 1160
  169. 1690 CLS:LOCATE 1,32:COLOR 13:PRINT"FILE MAINTENANCE":LOCATE 3,30:COLOR 13:PRINT"CHANGE/DELETE AN ITEM":LOCATE 4,30:COLOR 11:PRINT"_____________________":CA=VAL(CA$):RB=DC(CA):GOSUB 2160
  170. 1700 LOCATE 6,5:COLOR 11:IF DA$(CA)="X"THEN PRINT"CATEGORY DOES NOT EXIST":GOTO 1710 ELSE PRINT"CATEGORY = ";DA$(CA):GOTO 1730
  171. 1710 LOCATE 23,30,1:BEEP:PRINT"Press <ENTER> to Quit: ";
  172. 1720 Q$=INKEY$:IF Q$=""THEN 1720 ELSE 1680
  173. 1730 IF NA=0 THEN 1750 ELSE LOCATE 23,20,1:COLOR 11:BEEP:PRINT"NO ITEMS TO CHANGE - PRESS ENTER: ";
  174. 1740 Q$=INKEY$:IF Q$=""THEN 1740 ELSE 1680
  175. 1750 R=8:FOR I=1 TO 10:IF DB$(I)=""THEN EA=I:GOTO 1780
  176. 1760 LOCATE R,1:COLOR 11:PRINT I:LOCATE R,5:COLOR 12:PRINT DB$(I);DD$(I):R=R+1:NEXT:R=8:FOR I=11 TO 20:IF DB$(I)=""THEN EA=I:GOTO 1780
  177. 1770 LOCATE R,45:COLOR 11:PRINT I:LOCATE R,49:COLOR 12:PRINT DB$(I);DD$(I):R=R+1:NEXT
  178. 1780 LOCATE 23,20:COLOR 11:INPUT"Enter Item Number to Change: ";I$:IF I$=""THEN 1680 ELSE IF VAL(I$)=>EA THEN BEEP:LOCATE 23,51:PRINT "  ":GOTO 1780 ELSE 1790
  179. 1790 I=VAL(I$):RC=(DC(CA)-1+I):GOSUB 2240:LOCATE 19,5:COLOR 13:PRINT"ITEM NAME          DESCRIPTION        ALLOTTED     IN STOCK     PRICE":LOCATE 20,5:COLOR 11:PRINT"---------          -----------        --------     --------     -----
  180. 1800 LOCATE 21,5:COLOR 12:PRINT SH$;SPACE$(4);SI$;SPACE$(6);SF;SPACE$(10);SJ;SPACE$(7);SK$
  181. 1810 LOCATE 23,10,0:PRINT SA$:LOCATE 23,10,1:COLOR 11:INPUT"Enter Item Name or 'q' to Quit or 'd' to Delete: ";NF$
  182. 1820 IF NF$="q"OR NF$="Q"THEN 1690 ELSE IF NF$="d"OR NF$="D"THEN 2320 ELSE IF LEN(NF$)>15 THEN LOCATE 23,59,0:PRINT SPACE$(20);:BEEP:GOTO 1810 ELSE IF NF$=""THEN NF$=SH$
  183. 1830 A$=NF$:GOSUB 2680:NF$=A$:LOCATE 21,5,0:PRINT SPACE$(15);:LOCATE 21,5:COLOR 11:PRINT NF$:LOCATE 23,10,0:PRINT SD$:LOCATE 23,20,1:COLOR 11:INPUT"Enter Description: ";NG$:IF NG$=""THEN NG$=SI$
  184. 1840 A$=NG$:IF LEN(A$)>15 THEN LOCATE 23,40,0:PRINT SPACE$(25);:BEEP:GOTO 1430 ELSE GOSUB 2680:NG$=A$:LOCATE 21,24,0:PRINT SPACE$(15);:LOCATE 21,24:COLOR 11:PRINT NG$
  185. 1850 GOSUB 2500:INPUT"Enter Allotment: ";NH:IF NH=0 THEN NH=SF
  186. 1860 LOCATE 21,45:COLOR 11:PRINT NH:GOSUB 2500:INPUT"Enter In Stock: ";NB:IF NB=0 THEN NB=SJ
  187. 1870 LOCATE 21,58:COLOR 11:PRINT NB:GOSUB 2500:INPUT"Enter Unit Price: ";NI$:IF NI$=""THEN NI$=SK$
  188. 1880 LOCATE 21,69:COLOR 11:PRINT NI$:GOSUB 2500:PRINT"Is Item Okay? (y/n):   y";:LOCATE 23,43
  189. 1890 Q$=INKEY$:IF Q$=""THEN 1890 ELSE IF Q$="n"OR Q$="N"THEN PRINT"N":GOSUB 2490:GOTO 1780
  190. 1900 NE=RC:GOSUB 2490:GOSUB 2230:GOTO 1690
  191. 1910 CLS:LOCATE 1,32:COLOR 13:PRINT"FILE MAINTENANCE":LOCATE 3,32:COLOR 13:PRINT"DISPLAY AN ITEM":LOCATE 4,32:COLOR 11:PRINT"_______________":GOSUB 2080:NA=0:LOCATE 23,29:COLOR 11:INPUT;"Enter Category Number";CA$:IF CA$=""THEN 1160
  192. 1920 CLS:LOCATE 1,32:COLOR 13:PRINT"FILE MAINTENANCE":LOCATE 3,32:COLOR 13:PRINT"DISPLAY AN ITEM  ":LOCATE 4,32:COLOR 11:PRINT"_______________  ":CA=VAL(CA$):RB=DC(CA):GOSUB 2160:IF LEFT$(DA$(CA),1)="X"THEN CB$="EMPTY" ELSE CB$=DA$(CA)
  193. 1930 LOCATE 6,5:COLOR 11:PRINT CB$;:PRINT" CATEGORY":IF NA=0 THEN 1950 ELSE LOCATE 23,20,1:BEEP:COLOR 11:PRINT"NO ITEMS TO DISPLAY - PRESS ENTER: ";
  194. 1940 Q$=INKEY$:IF Q$=""THEN 1940 ELSE 1910
  195. 1950 R=8:FOR I=1 TO 10:IF DB$(I)=""THEN EA=I:GOTO 1980
  196. 1960 LOCATE R,1,0:COLOR 11:PRINT I:LOCATE R,5:COLOR 12:PRINT DB$(I);DD$(I):R=R+1:NEXT:R=8:FOR I=11 TO 20:IF DB$(I)=""THEN EA=I:GOTO 1980
  197. 1970 LOCATE R,45:COLOR 11:PRINT I:LOCATE R,49:COLOR 12:PRINT DB$(I);DD$(I):R=R+1:NEXT
  198. 1980 LOCATE 23,25,1:COLOR 11:INPUT"ENTER ITEM NUMBER TO DISPLAY: ";I$:IF I$=""THEN 1910 ELSE IF VAL(I$)=>EA THEN BEEP:LOCATE 23,56:PRINT "   ":GOTO 1980 ELSE LOCATE 23,25:PRINT SA$
  199. 1990 I=VAL(I$):RC=(DC(CA)-1+I):GOSUB 2240:LOCATE 19,5,0:COLOR 13:PRINT"ITEM NAME          DESCRIPTION        ALLOTTED     IN STOCK     PRICE":LOCATE 20,5:COLOR 11:PRINT"---------          -----------        --------     --------     -----
  200. 2000 LOCATE 21,5:COLOR 12:PRINT SH$;SPACE$(4);SI$;SPACE$(6);SF;SPACE$(10);SJ;SPACE$(7);SK$:LOCATE 23,29,1:COLOR 11:PRINT"PRESS <ENTER> TO QUIT: ";
  201. 2010 Q$=INKEY$:IF Q$=""THEN 2010 ELSE LOCATE 23,10,0:PRINT SA$:GOSUB 2480:GOTO 1980
  202. 2020 FOR I=1 TO 20:DB$(I)="":DD$(I)="":DE(I)=0:DG$(I)="":NEXT:GOSUB 2670:I=1:FOR RC=RB TO RB+19:GET#1,RC:IF LEFT$(NME$,1)=" "AND RC=RB THEN CLOSE:NA=1:NJ=RB:RETURN
  203. 2030 IF LEFT$(NME$,1)=" "THEN CLOSE:NJ=RC:RETURN
  204. 2040 DB$(I)=NME$:DD$(I)=DJ$:DE(I)=CVI(AA$):DK=CVI(IA$):DG$(I)=PA$:I=I+1:NEXT:CLOSE:RETURN
  205. 2050 KILL DRV$+"cat":OPEN DRV$+"cat" FOR OUTPUT AS #1:FOR I=1 TO 20:WRITE#1,DA$(I),DC(I):NEXT:WRITE#1,LA$:CLOSE:OPEN DRV$+"cat" FOR INPUT AS #1:FOR I=1 TO 20:IF EOF(1)THEN CLOSE:RETURN
  206. 2060 INPUT#1,CAT$,REC:DA$(I)=CAT$:DC(I)=REC:NEXT:INPUT#1,LA$:CLOSE:RETURN
  207. 2070 GOSUB 2670:LSET NME$=DB$(I):LSET DJ$=DD$(I):RSET AA$=MKI$(DE(I)):RSET IA$=MKI$(NB):RSET PA$=DG$(I):PUT#1,RC:CLOSE:RETURN
  208. 2080 R=8:IF DA$(20)<>"X"THEN OC=1:M=19 ELSE M=20
  209. 2090 FOR I=1 TO 10:IF DA$(I)="X"THEN NE=I:IF OC THEN 2120 ELSE RETURN
  210. 2100 LOCATE R,10,0:COLOR 11:PRINT I;:LOCATE R,16:COLOR 12:PRINT DA$(I):R=R+1:NEXT:R=8:FOR I=11 TO M:IF DA$(I)="X"THEN NE=I:IF OC THEN 2120 ELSE RETURN
  211. 2110 LOCATE R,45:COLOR 11:PRINT I;:LOCATE R,51:COLOR 12:PRINT DA$(I):R=R+1:NEXT
  212. 2120 IF OC THEN I=20:LOCATE 17,45:COLOR 11:PRINT I;:LOCATE 17,51:COLOR 12:PRINT DA$(I)
  213. 2130 RETURN
  214. 2140 OPEN DRV$+"cat" FOR APPEND AS #1:FOR I=1 TO 20:IF DA$(I)=""THEN CLOSE:RETURN
  215. 2150 WRITE#1,DA$(I),DC(I):NEXT:WRITE#1,LA$:CLOSE:RETURN
  216. 2160 FOR I=1 TO 20:DB$(I)="":DD$(I)="":DF(I)=0:DE(I)=0:DG$(I)="":NEXT:GOSUB 2670:I=1:FOR RC=RB TO RB+19:GET#1,RC:J=ASC(MID$(NME$,1,1)):IF J=0 AND RC=RB THEN CLOSE:NA=1:NJ=RB:RETURN
  217. 2170 IF J=32 AND RC=RB THEN CLOSE:NA=1:NJ=RB:RETURN
  218. 2180 IF J>96 AND J<123 AND RC=RB THEN CLOSE:NA=1:NJ=RB:RETURN
  219. 2190 IF J=0 THEN CLOSE:NJ=RC:RETURN
  220. 2200 IF J=32 THEN CLOSE:NJ=RC:RETURN
  221. 2210 IF J>96 AND J<123 THEN CLOSE:NJ=RC:RETURN
  222. 2220 DB$(I)=NME$:DD$(I)=DJ$:DE(I)=CVI(AA$):DF(I)=CVI(IA$):DG$(I)=PA$:I=I+1:NEXT:CLOSE:RETURN
  223. 2230 GOSUB 2670:LSET NME$=NF$:LSET DJ$=NG$:RSET AA$=MKI$(NH):RSET IA$=MKI$(NB):RSET PA$=NI$:PUT#1,NE:CLOSE:RETURN
  224. 2240 GOSUB 2670:GET#1,RC:CLOSE:SH$=NME$:SI$=DJ$:SF=CVI(AA$):SJ=CVI(IA$):SK$=PA$:RETURN
  225. 2250 IF ERL=50 THEN GOSUB 2700:RESUME 60
  226. 2260 IF ERL=60 THEN GOSUB 2470:RESUME 60
  227. 2270 IF ERL=1130 THEN RESUME 1140
  228. 2280 IF ERL=2630 THEN CLOSE#2:BEEP:RESUME 2620
  229. 2290 IF ERL<>2610 THEN 2310 ELSE CLOSE#2:BEEP:GOSUB 2500:PRINT"NO FILES - PRESS ENTER: ";
  230. 2300 Q$=INKEY$:IF Q$=""THEN 2310 ELSE RESUME 1480
  231. 2310 CLS:PRINT ERR;" at";ERL:STOP
  232. 2320 LOCATE 23,10,0:PRINT SC$:LOCATE 23,20,1:PRINT"Delete Item? (y/n):  y";:LOCATE 23,41
  233. 2330 Q$=INKEY$:IF Q$=""THEN 2330 ELSE IF Q$="y"OR Q$="Y"OR Q$=CHR$(13)THEN 2340 ELSE LOCATE 23,40:PRINT"N":GOTO 1690
  234. 2340 LOCATE 23,41:PRINT"Y":GOSUB 2670
  235. 2350 GET#1,RC+1:J=ASC(MID$(NME$,1,1)):IF J=0 OR J=32 THEN 2360 ELSE PUT#1,RC:GOTO 2370
  236. 2360 LSET NME$="               ":PUT#1,RC:CLOSE:GOTO 1690
  237. 2370 IF RC+1=RB+19 THEN CLOSE:GOTO 1690
  238. 2380 RC=RC+1:GOTO 2350
  239. 2390 CLS:LOCATE 12,25:COLOR 12:PRINT"CURRENT DATE IS     ";:COLOR 11:PRINT DATE$:LOCATE 14,25:COLOR 12:PRINT"LAST UPDATE WAS ON  ";:COLOR 11:PRINT LA$:LOCATE 20,24:COLOR 13:PRINT"Clear Item File totals? (y/n/q)  n";:COLOR 11:LOCATE 20,57
  240. 2400 Q$=INKEY$:IF Q$=""THEN 2400 ELSE PRINT Q$:IF Q$=CHR$(13)OR Q$="n"OR Q$="N"THEN RETURN ELSE IF Q$="q"OR Q$="Q"THEN 80
  241. 2410 GOSUB 2670:CLS:LOCATE 12,25,0:COLOR 12:PRINT"DELETING TOTALS FROM ITEM FILE":FOR I=21 TO 420:GET#1,I:J=ASC(MID$(NME$,1,1)):IF J=0 THEN 2440
  242. 2420 PC=CVI(PC$):IF PC=0 THEN 2440
  243. 2430 TOT=0:RSET TOT$=MKI$(TOT):PC=0:RSET PC$=MKI$(PC):PUT#1,I
  244. 2440 NEXT:CLOSE:LOCATE 20,23,1:COLOR 11:PRINT"FINISHED - PRESS <ENTER> TO RETURN: ";:LOCATE 20,59
  245. 2450 Q$=INKEY$:IF Q$=""THEN 2450 ELSE CLS:RETURN
  246. 2460 PRINT ERR;:PRINT"  at  ";:PRINT ERL:STOP
  247. 2470 OPEN DRV$+"cat" FOR APPEND AS #1:CAT$="X":REC=21:FOR I=1 TO 19:WRITE#1,CAT$,REC:REC=REC+20:NEXT:CAT$="OTHER STORES   ":REC=1:WRITE#1,CAT$,REC:LA$=DATE$:WRITE#1,LA$:CLOSE#1:RETURN
  248. 2480 FOR R=19 TO 21:LOCATE R,1,0:PRINT SE$:NEXT R:RETURN
  249. 2490 FOR R=19 TO 23:LOCATE R,1,0:PRINT SE$:NEXT R:RETURN
  250. 2500 LOCATE 23,20,0:PRINT SA$:LOCATE 23,20,1:COLOR 11:RETURN
  251. 2510 CLS:LOCATE 2,32:COLOR 13:PRINT"SHOPPING PROGRAM":LOCATE 4,30:COLOR 13:PRINT"RE-ORDER  CATEGORIES":LOCATE 23,20,1:COLOR 11:PRINT"Use an Existing Order File? (y/n)  n";:LOCATE 23,55
  252. 2520 Q$=INKEY$:IF Q$=""THEN 2520 ELSE IF Q$="y"THEN PRINT Q$:GOSUB 2610:RETURN ELSE PRINT"n
  253. 2530 GOSUB 2080:GOSUB 2500:R=7:FOR I=1 TO NE-1
  254. 2540 LOCATE 23,28,1:PRINT"Enter Row # ";:PRINT I;:LINE INPUT RW$:ROW$(I)=RW$:IF RW$=""THEN BEEP:GOTO 2540 ELSE RW=VAL(RW$):RA=RW:IF RA>10 THEN C=40:RA=RA-10 ELSE C=5
  255. 2550 TA$(I)=DA$(RW):OA(I)=DC(RW):LOCATE 23,43:PRINT"   ":LOCATE R+RA,C:PRINT I:NEXT:OA(NE)=DC(20):TA$(NE)=DA$(20):LOCATE 23,20,0:PRINT SL$:LOCATE 23,20,1:PRINT"Order OK? (y/n):  y";:LOCATE 23,38
  256. 2560 QQ$=INKEY$:IF QQ$=""THEN 2560 ELSE IF QQ$=CHR$(13)THEN PRINT"y":GOTO 2570 ELSE PRINT "N":GOTO 2510
  257. 2570 GOSUB 2500:PRINT"Save this Order (y/n)?  n";:LOCATE 23,44
  258. 2580 Q$=INKEY$:IF Q$=""THEN 2580 ELSE IF Q$=CHR$(13)THEN 680 ELSE PRINT"Y":GOSUB 2500:INPUT"Name for Order (default .STR): ";SG$
  259. 2590 OPEN DRV$+SG$+".str" FOR APPEND AS #2:FOR I=1 TO 20:IF TA$(I)=""THEN CLOSE:RETURN
  260. 2600 WRITE#2,TA$(I),OA(I):NEXT:CLOSE#2:RETURN
  261. 2610 LOCATE 23,20,0:PRINT SA$:LOCATE 8,1:FILES DRV$+"*.str
  262. 2620 LOCATE 23,20,1:LINE INPUT"Select File to use (default .STR): ";SG$:IF SG$=""THEN 2510
  263. 2630 OPEN DRV$+SG$+".str" FOR INPUT AS #2:FOR I=1 TO 20:IF EOF(2)THEN 2660
  264. 2640 INPUT#2,TA$(I),OA(I):IF TA$(I)=""THEN 2660
  265. 2650 NEXT
  266. 2660 CLOSE#2:RETURN
  267. 2670 OPEN DRV$+"items" AS #1 LEN = 43:FIELD #1,15 AS NME$,15 AS DJ$,2 AS AA$,2 AS IA$,5 AS PA$,2 AS TOT$,2 AS PC$:RETURN
  268. 2680 FOR W=1 TO LEN(A$):J=ASC(MID$(A$,W,1)):IF J>96 AND J<123 THEN J=J-32:MID$(A$,W,1)=CHR$(J)
  269. 2690 NEXT:RETURN
  270. 2700 CLS:LOCATE 12,24:COLOR 11:PRINT"CREATING ITEM FILE - PLEASE WAIT":A=1:EC=400
  271. 2710 OPEN DRV$+"items" AS #1 LEN = 43:FIELD #1,43 AS NME$:FOR I=A TO EC:GET#1,I:LSET NME$="                                                   ":PUT#1,I:NEXT:CLOSE:RETURN
  272. 2720 CLS:LOCATE 1,32:COLOR 13:PRINT"SHOPPING PROGRAM":LOCATE 3,35,0:COLOR 13:PRINT"STATISTICS":LOCATE 4,35:COLOR 11:PRINT"__________":LOCATE 8,25:COLOR 11:PRINT"< 1 >    ";:COLOR 12:PRINT"PURCHASES BY ITEM
  273. 2730 LOCATE 10,25:COLOR 11:PRINT"< 2 >    ";:COLOR 12:PRINT"MAIN MENU":LOCATE 23,30,1:COLOR 11:PRINT"Enter Selection: ";
  274. 2740 Q$=INKEY$:IF Q$=""THEN 2740 ELSE IF Q$=CHR$(13)OR Q$="2"THEN 80 ELSE IF Q$="1"THEN 2750
  275. 2750 CLS:LOCATE 1,32:COLOR 13:PRINT"SHOPPING PROGRAM":LOCATE 3,35,0:COLOR 13:PRINT"STATISTICS":LOCATE 4,35:COLOR 11:PRINT"__________":GOSUB 2080:LOCATE 23,20:COLOR 11:INPUT;"Enter Category Number";CA$:IF CA$=""THEN 2720
  276. 2760 CLS:LOCATE 1,24:COLOR 13:PRINT"ITEM STATISTICS - ";:COLOR 11:PRINT"SINCE ";:PRINT LA$:CA=VAL(CA$):RB=DC(CA):FOR I=1 TO 20:DB$(I)="":DD$(I)="":DE(I)=0:DI(I)=0:DH(I)=0:NEXT:GOSUB 2670:I=1
  277. 2770 FOR RC=RB TO RB+19:GET#1,RC:J=ASC(MID$(NME$,1,1)):IF J=0 AND RC=RB THEN CLOSE:NA=1:NJ=RB:GOTO 2840
  278. 2780 IF J=32 AND RC=RB THEN CLOSE:NA=1:NJ=RB:GOTO 2840
  279. 2790 IF J>96 AND J<123 AND RC=RB THEN CLOSE:NA=1:NJ=RB:GOTO 2840
  280. 2800 IF J=0 THEN CLOSE:NJ=RC:GOTO 2840
  281. 2810 IF J=32 THEN CLOSE:NJ=RC:GOTO 2840
  282. 2820 IF J>96 AND J<123 THEN CLOSE:NJ=RC:GOTO 2840
  283. 2830 DB$(I)=NME$:DD$(I)=DJ$:DE(I)=CVI(AA$):DK=CVI(IA$):DI(I)=CVI(TOT$):DH(I)=CVI(PC$):I=I+1:NEXT
  284. 2840 CLOSE:NA=0:GOSUB 2160:IF NA=0 THEN 2860 ELSE GOSUB 2500:BEEP:PRINT"NO ITEMS TO DISPLAY - PRESS ENTER: ";
  285. 2850 Q$=INKEY$:IF Q$=""THEN 2850 ELSE 2750
  286. 2860 R=3:LOCATE 2,1,0:COLOR 12:PRINT"ITEM     NAME             DESCRIPTION      ALLOTTED   PURCHASES   TOTAL BOUGHT":FOR I=1 TO 20:IF DB$(I)=""THEN EA=I:GOTO 2880
  287. 2870 LOCATE R,1:COLOR 11:PRINT I:LOCATE R,10:COLOR 13:PRINT DB$(I);:LOCATE R,27:PRINT DD$(I);:LOCATE R,47:PRINT DE(I);:LOCATE R,58:PRINT DI(I);:LOCATE R,71:PRINT DH(I):R=R+1:NEXT
  288. 2880 LOCATE 23,25,1:COLOR 11:PRINT"END OF LIST - PRESS <ENTER>: ";
  289. 2890 Q$=INKEY$:IF Q$=""THEN 2890 ELSE 2750
  290. 2900 CLS:LOCATE 12,27,1:COLOR 11:PRINT"EXIT TO DOS? (y/n):  n";:LOCATE 12,48
  291. 2910 Q$=INKEY$:IF Q$=""THEN 2910 ELSE IF Q$="y"OR Q$="Y"THEN 2930
  292. 2920 GOTO 80
  293. 2930 IF UA=0 THEN 2950 ELSE KILL DRV$+"cat":OPEN DRV$+"cat" FOR OUTPUT AS #1
  294. 2940 FOR I=1 TO 20:WRITE#1,DA$(I),DC(I):NEXT:LA$=DATE$:WRITE#1,LA$
  295. 2950 CLOSE:CLS:COLOR 7:SYSTEM:GOSUB 540:GOTO 2960
  296. 2960 GOSUB 2670:B=1:FOR I=DC(B)TO DC(B)+19:GET#1,I:IF LEFT$(NME$,1)<>" "THEN 2980 ELSE B=B+1:NC=0
  297. 2970 IF B=21 THEN 660 ELSE 560
  298. 2980 SF=CVI(AA$):IA=CVI(IA$):PA=VAL(PA$):IF NC THEN 620
  299. 2990 IF R=>19 THEN ND=1:LOCATE 23,17,1:COLOR 11:BEEP:PRINT"PRESS ENTER FOR NEXT SCREEN OR 'q' TO QUIT: ";:GOTO 630
  300. 3000 IF ND THEN 610 ELSE R=R+1
  301. 3010 LOCATE R,1:COLOR 13:PRINT DA$(B):R=R+2:ND=1:NC=1:GOTO 650
  302. 3020 Q$=INKEY$:IF Q$=""THEN 3020 ELSE IF Q$="q"OR Q$="Q"THEN CLOSE:GOTO 80
  303. 3030 GOSUB 540:IF ND AND LEFT$(NME$,1)<>" "THEN LOCATE R,1:COLOR 13:PRINT DA$(B):ND=0:R=R+2
  304. 3040 LOCATE R,5,0:COLOR 12:PRINT NME$;SPACE$(4);DJ$;SPACE$(6);SF;SPACE$(10);IA;:LOCATE R,65:PRINT USING "$$##.##";PA:R=R+1:NEXT I:CLOSE:COLOR 13:LOCATE 23,20,1:BEEP:PRINT"END OF LIST - PRESS ENTER FOR MAIN MENU: ";
  305. 3050 Q$=INKEY$:IF Q$=""THEN 3050 ELSE 80
  306. 3060 A=VAL(I$):LOCATE 23,10,0:PRINT SPACE$(69);:LOCATE 23,32,1:PRINT"Delete? (y/n):  n";:LOCATE 23,48,1
  307. 3070 Q$=INKEY$:IF Q$=""THEN 3070 ELSE IF Q$=CHR$(13)OR Q$="n"OR Q$="N"THEN LOCATE 23,20,0:PRINT SA$:GOTO 1610
  308. 3080 CLS:LOCATE 12,28,0:COLOR 11:PRINT"RE-CREATING CATEGORY FILE":DA$(A)="D":DL=0:NK=0:NL=DC(A):FOR I=1 TO 19:IF DA$(I+1)="X"THEN DA$(I)=DA$(I+1):DC(I)=NL:GOTO 3110
  309. 3090 IF DA$(I)="D"OR DL THEN DA$(I)=DA$(I+1):DC(I)=DC(I+1):DL=1
  310. 3100 NEXT
  311. 3110 KILL DRV$+"cat":OPEN DRV$+"cat"FOR APPEND AS #1:FOR I=1 TO 20:WRITE#1,DA$(I),DC(I):NEXT:WRITE#1,LA$:CLOSE:CLS:BEEP:LOCATE 12,28,0:COLOR 11:PRINT"  ERASING ITEM RECORDS   ":A=NL:EC=NL+19:GOSUB 2710:GOTO 1600
  312.